YOLO 是一個不斷改進和優化的物件偵測系列,除了前三個版本,在 2020 年時,YOLOv4 也問世了!
YOLOv4 是至今最快、精準度最高的物件偵測系統,除了即時偵測車流速度之外,甚至能辨識並捕捉高速滑雪運動中的人與物體。
據作者表示,其實 YOLOv4 是不小心產生的,為什麼這樣說呢?
當初有企業詢問中研院資訊所:如何改善十字路口的交通分析?
研究團隊構想要完成魚眼車流分析、多攝影機行人識別技術、行動裝置人臉防偽技術,最後鎖定路口以科技執法來揪出違規車輛。
團隊部署了魚眼鏡頭,實際測試用來分析車流量的演算法,並根據偵測到的數據,來調整交通號誌燈號。
他們進行了停等車隊與車速、車流的分析,加上當時槍型攝影機所搭配的物件偵測演算法 → 這些實作就是「意外發展出來的 YOLOv4」。
Yolov4本質上和Yolov3相差不大,主要也是加快速度和辨識的準確度,怎樣改善後可以大幅提升表現呢?
關鍵是:學習的反饋過程
。當卷積神經網路的網路層數愈多,在訓練階段,因為反饋計算方式,每回傳一層就會損失一些資訊,越前面的網路層學習到的東西越少,稱為「梯度消失問題」(vanishing gradient problem)。
黑色箭頭:CNN 運行方向;紅色箭頭:CNN 的學習反饋方向
為了解決梯度消失問題,前人曾經提出 ResNet 卷積神經網路來解決,就是將後面資料備份後往前"跳級"傳遞。
但是 ResNet 具有太多重複的拷貝,每一層能學到的東西都差不多。
跳級:從最後一層開始,每一層都備份,再把備份越過一層傳遞,前面網路層就能接收到後面的資訊!
因此,在 PRNet 的基礎上研發出"跨階段局部網路" CSPNet
(cross stage partial network, CSPNet),利用分割–分流–合併
的路徑,成功達到了大幅減少計算量、卻能增加學習多元性的目標。
PRNet:局部殘差網路 (partial residual networks),將資訊「分流」,減少無謂的計算量,使運算速度增加兩倍。
因為使用了 CSPNet ,YOLOv4 可即時偵測人們的社交距離,或是快速判斷路上的行人有沒有戴口罩,為社會帶來很多便利!